#pragma once

#include "HkpWorldCinfo.h"
#include "..\..\..\Common\HkIncludes.h"
#include "..\RigidBody\HkpRigidBody.h"
#include "..\Phantom\HkpPhantom.h"

namespace Havok
{
	namespace Dynamics
	{
		public ref class HkpWorld
		{
		public:
			HkpWorld(HkpWorldCinfo^ info);
			~HkpWorld();

			HkpStepResult Update(GameTime^ gameTime);
			
			void AddEntity(HkpRigidBody^ entity);
			
			void RemoveEntity(HkpRigidBody^ entity);

			void AddPhantom(Phantom::HkpPhantom^ phantom);

			System::Collections::Generic::List<HkpRigidBody^>^ RigidBodies;

			hkpWorld* m_world;
			hkpMultithreadingUtil* multithreadingUtil;
		};
	}
}
